home *** CD-ROM | disk | FTP | other *** search
- 0 (null)FOR0,,,,0:(null)END1,"GRAPHIC0"+CHR$(13):(null)END3,"GRAPHIC1"+CHR$(13)
- 1 PRINT"[147] [176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
- 2 PRINT" [194] [194]"
- 3 PRINT" [194] FRACTAL LANDSCAPES V1.0 [194]"
- 4 PRINT" [194] [194]"
- 6 PRINT" [173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]"
- 7 IN%=0:INPUT" [154]INSTRUCTIONS (1=YES)";IN%
- 8 IFIN%=1THENGOSUB2000
- 9 INPUT" [154]1520 PLOTTER (Y/N)";PL$
- 19 IFPL$="Y"THEN:OPEN2,6,2:OPEN3,6,2:OPEN4,6,0:OPEN1,6,1
- 20 DIMD(64,32):INPUT" NUMBER OF LEVELS (1-6)";LE
- 40 DS=2:FORN=1TOLE:DS=DS+2^(N-1):NEXTN
- 50 MX=DS-1:MY=MX/2:PI=(null):RH=PI*30/180:VT=RH*1.2
- 60 FORN=1TOLE:L=10000/1.8^N
- 70 PRINT" WORKING ON LEVEL";N
- 80 IB=MX/2^N:SK=IB*2
- 90 GOSUB150:REM *** HEIGHTS ALONG X
- 100 GOSUB220:REM *** HEIGHTS ALONG Y
- 110 GOSUB290:REM *** HEIGHTS ALONG DIAG.
- 120 NEXTN
- 125 (null)NEXT1,1
- 130 GOTO640:REM *** DRAW
- 140 REM*** HEIGHTS ALONG X
- 150 FORYE=0TOMX-1STEPSK
- 160 FORXE=IB+YETOMXSTEPSK
- 170 AX=XE-IB:AY=YE:GOSUB370:D1=D:AX=XE+IB:GOSUB370:D2=D
- 180 D=(D1+D2)/2+RND(1)*L/2-L/4:AX=XE:AY=YE:GOSUB420
- 190 NEXTXE
- 200 NEXTYE:RETURN
- 210 REM *** HEIGHTS ALONG Y
- 220 FORXE=MXTO1STEP-SK
- 230 FORYE=IBTOXESTEPSK
- 240 AX=XE:AY=YE+IB:GOSUB370:D1=D:AY=YE-IB:GOSUB370:D2=D
- 250 D=(D1+D2)/2+RND(1)*L/2-L/4:AX=XE:AY=YE:GOSUB420
- 260 NEXTYE
- 270 NEXTXE:RETURN
- 280 REM *** HEIGHTS ALONG DIAG.
- 290 FORXE=0TOMX-1STEPSK
- 300 FORYE=IBTOMX-XESTEPSK
- 310 AX=XE+YE-IB:AY=YE-IB:GOSUB370:D1=D
- 320 AX=XE+YE+IB:AY=YE-IB:GOSUB370:D2=D
- 330 AX=XE+YE:AY=YE:D=(D1+D2)/2+RND(1)*L/2-L/4:GOSUB420
- 340 NEXTYE
- 350 NEXTXE:RETURN
- 360 REM *** RETURN DATA FROM ARRAY
- 370 IFAY>MYTHEN390
- 380 BY=AY::BX=AX:GOTO400
- 390 BY=MX+1-AY:BX=MX-AX
- 400 D=D(BX,BY):RETURN
- 410 REM *** PUT DATA INTO ARRAY
- 420 IFAY>MYTHEN440
- 430 BY=AY:BX=AX:GOTO450
- 440 BY=MX+1-AY:BX=MX-AX
- 450 D(BX,BY)=D:RETURN
- 460 REM *** PUT IN SEA LEVEL
- 470 IFXO<>-999THEN500
- 480 IFZZ<0THENGOSUB1070:Z2=ZZ:ZZ=0:GOTO620
- 490 GOSUB1090:GOTO610
- 500 IFZ2>0ANDZZ>0THEN610
- 510 IFZ2<0ANDZZ<0THENZ2=ZZ:ZZ=0:GOTO620
- 520 W3=ZZ/(ZZ-Z2):X3=(X2-XX)*W3+XX:Y3=(Y2-YY)*W3+YY:Z3=0
- 530 ZT=ZZ:YT=YY:XT=XX
- 540 IFZZ>0THEN590
- 550 REM *** GOING INTO WATER
- 560 ZZ=Z3:YY=Y3:XX=X3:GOSUB950
- 570 GOSUB1070:ZZ=0:YY=YT:XX=XT:Z2=ZT:GOTO620
- 580 REM *** GOING OUT OF WATER
- 590 ZZ=Z3:YY=Y3:XX=X3:GOSUB950
- 600 GOSUB1090:ZZ=ZT:YY=YT:XX=XT
- 610 Z2=ZZ
- 620 X2=XX:Y2=YY:RETURN
- 630 REM *** DISPLAY HERE
- 640 GOSUB1110:REM *** SET UP SCREEN
- 650 XS=.03:YS=.02 :ZS=.1:REM *** SCALING FACTORS
- 660 FORAX=0TOMX:XO=-999:FORAY=0TOAX
- 670 GOSUB370:ZZ=D:YY=AY/MX*10000:XX=AX/MX*10000-YY/2
- 680 GOSUB940:NEXTAY:NEXTAX
- 690 FORAY=0TOMX:XO=-999:FORAX=AYTOMX
- 700 GOSUB370:ZZ=D:YY=AY/MX*10000:XX=AX/MX*10000-YY/2
- 710 GOSUB940:NEXTAX:NEXTAY
- 720 FOREX=0TOMX:XO=-999:FOREY=0TOMX-EX
- 730 AX=EX+EY:AY=EY:GOSUB370:ZZ=D:YY=AY/MX*10000
- 740 XX=AX/MX*10000-YY/2:GOSUB940:NEXTEY:NEXTEX
- 750 GOTO1130:REM *** END
- 760 REM *** ROTATE
- 770 IFXX<>0THEN800
- 780 IFYY<=0THENRA=RA-PI/2:GOTO820
- 790 RA=PI/2:GOTO820
- 800 RA=ATN(YY/XX)
- 810 IFXX<0THENRA=RA+PI
- 820 R1=RA+RH:RD=SQR(XX*XX+YY*YY)
- 830 XX=RD*COS(R1):YY=RD*SIN(R1)
- 840 RETURN
- 850 REM *** TILT DOWN
- 860 RD=SQR(ZZ*ZZ+XX*XX)
- 870 IFXX=0THENRA=PI/2:GOTO900
- 880 RA=ATN(ZZ/XX)
- 890 IFXX<0THENRA=RA+PI
- 900 R1=RA-VT
- 910 XX=RD*COS(R1)+XX:ZZ=RD*SIN(R1)
- 920 RETURN
- 930 REM *** MOVE OR PLOT TO (XP,YP)
- 940 GOSUB470
- 950 XX=XX*XS:YY=YY*YS:ZZ=ZZ*ZS
- 960 GOSUB770:REM *** ROTATE
- 970 GOSUB860:REM *** TILT UP
- 980 IFXO=-999THENPR$="M"
- 985 IFXO<>-999THENPR$="D"
- 990 XP=INT(YY)+CX:YP=INT(ZZ)
- 1000 GOSUB1030
- 1010 RETURN
- 1020 REM *** PLOT LINE HERE
- 1030 XP=XP*.625:YP=33.14-.663*YP
- 1040 IFPR$="M"THENX8=XP:Y8=YP:XO=X
- 1050 (null)GOTOAT,X8+2,Y8+60 TO XP+2,YP+60
- 1055 IFPL$="Y"THEN:PRINT#1,"M";INT(X8*3.01257862),ABS(INT(Y8*2.40703158)-479)
- 1056 IFPL$="Y"THEN:PRINT#1,"D";INT(XP*3.01257862),ABS(INT(YP*2.40703158)-479)
- 1057 X8=XP:Y8=YP:RETURN
- 1060 REM *** SWITCH TO SEA COLOR
- 1070 AT=2:IFPL$="Y"THENPRINT#2,1
- 1075 RETURN
- 1080 REM *** SWITCH TO LAND COLOR
- 1090 AT=3:IFPL$="Y"THENPRINT#2,2
- 1095 RETURN
- 1100 REM *** SET UP SCREEN
- 1110 PRINT"[147]":(null)NEXT1:(null)FOR0,12,6,5,0
- 1112 IF PL$="Y"THEN:FORJP=1TO24:PRINT#4:NEXT
- 1113 RETURN
- 1120 REM *** END LOOP
- 1130 GETA$:IFA$=""THEN:GOTO1130
- 1135 (null)NEXT0
- 1140 END
- 2000 PRINT"[147] [154][176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
- 2002 PRINT" [194] [194]"
- 2003 PRINT" [194] INSTRUCTIONS [154][194]"
- 2004 PRINT" [194] [194]"
- 2006 PRINT" [173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]"
- 2008 PRINT" PROGRAM WILL PLOT A FRACTAL LANDSCAPE
- 2009 [153]" CONTAINING LAND AND WATER AREAS.
- 2010 PRINT" EACH TIME THE PROGRAM RUNS DIFFERENT
- 2011 [153]" RANDOM LANDSCAPES ARE DRAWN.
- 2012 PRINT" LEVELS [146] - THERE ARE SIX LEVELS OF
- 2013 [153]" MAPMAKING. THE HIGHER THE NUMBER THE
- 2014 PRINT" HIGHER THE RESOLUTION OF THE MAP.
- 2015 [153]" HIGHER RESOLUTION LEVELS WILL TAKE
- 2016 PRINT" LONGER TO MAP. AT LEVELS 4 OR HIGHER
- 2017 [153]" YOU CAN TAKE A NAP AND WAIT.
- 2018 PRINT" HIT A KEY TO CONTINUE [146]"
- 2019 GETK$:IFK$=""THEN2019
- 2020 PRINT"[147] [176][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][174]"
- 2021 PRINT" [194] [194]"
- 2023 PRINT" [194] FRACTAL LANDSCAPES V1.0 [194]"
- 2024 PRINT" [194] [194]"
- 2026 PRINT" [173][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][195][189]"
- 2999 RETURN
-